package 常用方法.String;

/**
 * 作    者 ：吾路巴尼
 * 创建时间 ：2025/2/25-17:19
 */

import java.util.Locale;

/***/
public class String02 {
    public static void main(String[] args) {

        /**1.转换成大写*/
        String s1 = "hello";
        System.out.println(s1.toUpperCase());
        System.out.println("==============================================");


        /**2.转换成小写*/
        String s2 = "HAHA";
        System.out.println(s2.toLowerCase());
        System.out.println("==============================================");


        /**3.拼接字符串*/
        String s3 = "hello";//原先是hello
        s3 = s3.concat(" world").concat(" java").concat(" python");//拼接了3个字符串 world java python
        System.out.println(s3);//变成hello world java python
        System.out.println("==============================================");


        /**4.替换指定字符串中的字符*/
        String s4 = "你真是饿了";
        s4 = s4.replace("饿了", "大可爱");  //找到 全部饿了，全部替换成 大可爱
        System.out.println(s4);
        //注意：replace方法不会修改原字符串，而是返回一个新的字符串。如果只是执行s4.replace()，而不是s4 = s4.replace，s4不会变化。
        System.out.println("==============================================");


        /**5.split  按照指定字符进行分割 并 返回一个字符*/
        String str = "你好,你好,你好,我的头发是真发,要是假发早就掉完啦,早就掉完啦";
        String[] arr = str.split(",");//以逗号分割字符串，返回一个数组给arr
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        str = "C:\\src\\bin\\main.java";  //如果有特殊字符，需要用\转义
        arr = str.split("\\\\");//第1个\转义第2个\，第3个\转义第4个\，所以要转义两次;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("==============================================");


        /**6.把字符串转成字符数组并返回*/
        String s5 = "hello";//字符串
        char[] ch = s5.toCharArray();//把字符串转成字符数组并返回，原先的字符串s5不变
        for (int i = 0; i < ch.length; i++) {
            System.out.println(ch[i]);
        }
        System.out.println("==============================================");


        /**7.比较字符串的大小*/
        //长度相同时，先一个一个比较，如果相同就继续比较，如果不同就直接返回当前比较结果，后面就不再继续比较，如果都相同就返回0
        //如果长度不相同，先一个一个比较，如果相同就继续比较直到长度最小的字符串结束，如果长度不相同，就返回前面的字符串长度-后面的字符串长度
        String s6 = "hello";
        String s7 = "hallo";
        System.out.println(s6.compareTo(s7));//第二个不一样，所以'e'-'a' = 4;后面不再比较了，返回4
        s6 = "hello";
        s7 = "helloHELLO";
        System.out.println(s6.compareTo(s7));//到s6最短长的还没比完，返回s6的长度-s7的长度，所以返回-5
        s6 = "hallo";
        s7 = "hblloJJJJ";
        System.out.println(s6.compareTo(s7));//即使长度不同，但第2个不一样，所以'a'-'b' = -1;后面不再比较了，返回-1
        System.out.println("==============================================");


        /**8.格式化占位符*/
        String s8 = "hello%s来到%d街道喝%c";
        String info = String.format(s8,"韩顺平",2025,'水');//自动替换s8，并把3个占位符替换成world,2025,水；
        System.out.println(info);
        info = String.format("hello%s来到%d街道喝%c", "韩顺平", 2025, '水');//把3个占位符替换成"韩顺平", 2025, '水'；
        System.out.println(info);

    }
}
